package com.rmy.queue.domain;

import java.sql.Time;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.rmy.common.annotation.Excel;
import com.rmy.common.core.domain.BaseEntity;

/**
 * 预约管理对象 qms_main_business
 *
 * @author rmy
 * @date 2022-09-29
 */
public class QmsMainBusiness extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 预约流水 */
    @Excel(name = "预约流水")
    private String mbSerialNo;

    /** ERP单号 */
    @Excel(name = "ERP单号")
    private String erpBillNo;

    /** 机构代码 */
    @Excel(name = "机构代码")
    private String orgNo;

    /** 部门名称 */
    @Excel(name = "部门名称")
    private String deptName;

    /** 单据类型(1:提货单 2:送货单) */
    @Excel(name = "单据类型", dictType = "qms_bill_type")
    private String erpBillType;

    /** 业务类型 */
//    @Excel(name = "业务类型", isExport = false)
    private String businessType;

    /** 业务名称 */
    @Excel(name = "业务名称")
    private String businessName;

    /** 预约日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "预约日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date targetDate;

    /** 预约开始时间 */
    @JsonFormat(pattern = "HH:mm")
    @Excel(name = "预约开始时间", width = 30, dateFormat = "HH:mm")
    private String bookingStartTime;

    /** 预约结束时间 */
    @JsonFormat(pattern = "HH:mm")
    @Excel(name = "预约结束时间", width = 30, dateFormat = "HH:mm")
    private String bookingEndTime;

    /** 车牌号 */
    @Excel(name = "车牌号")
    private String carNo;

    /** 司机姓名 */
    @Excel(name = "司机姓名")
    private String driverName;

    /** 身份证号 */
    @Excel(name = "身份证号")
    private String driverIdNo;

    /** 手机号码 */
    @Excel(name = "手机号码")
    private String driverPhone;

    /** IC卡号 */
    @Excel(name = "IC卡号")
    private String icCardNo;

    /** 销售订单号 */
    @Excel(name = "销售订单号")
    private String saleNo;

    /** 供货单位 */
    @Excel(name = "供货单位")
    private String supplier;

    /** 计划数量 */
    @Excel(name = "计划数量")
    private String planQuantity;

    /** 计量方式 */
    @Excel(name = "计量方式")
    private String meteringMethod;

    /** 提货日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "提货日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date pickupDate;

    /** 运输单位 */
    @Excel(name = "运输单位")
    private String transCompany;

    /** 运输次数 */
    @Excel(name = "运输次数")
    private String transCount;

    /** 来源类型 */
    @Excel(name = "来源类型", dictType = "qms_source_type")
    private String sourceType;

    /** 流程状态 */
    @Excel(name = "流程状态", dictType = "qms_flow_status")
    private String flowStatus;

    /** 排队流水 */
//    @Excel(name = "排队流水", isExport = false)
    private String serialNo;

    /** 排队号码 */
    @Excel(name = "排队号码")
    private String queueNo;

    /** 取号时间 */
    @Excel(name = "取号时间", width = 50, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private String takenoTime;

    /** 实际进入时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "实际进入时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date entryTime;

    /** 实际出场时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "实际出场时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date exitTime;

    /**
     * 鹤位uuid
     */
    private String windowUuid;

    /**
     * 鹤位uuid
     */
    private String[] businessTypes;

    public void setMbSerialNo(String mbSerialNo)
    {
        this.mbSerialNo = mbSerialNo;
    }

    public String getMbSerialNo()
    {
        return mbSerialNo;
    }
    public void setErpBillNo(String erpBillNo)
    {
        this.erpBillNo = erpBillNo;
    }

    public String getErpBillNo()
    {
        return erpBillNo;
    }
    public void setErpBillType(String erpBillType)
    {
        this.erpBillType = erpBillType;
    }

    public String getErpBillType()
    {
        return erpBillType;
    }
    public void setBusinessType(String businessType)
    {
        this.businessType = businessType;
    }

    public String getBusinessType()
    {
        return businessType;
    }
    public void setBusinessName(String businessName)
    {
        this.businessName = businessName;
    }

    public String getBusinessName()
    {
        return businessName;
    }
    public void setTargetDate(Date targetDate)
    {
        this.targetDate = targetDate;
    }

    public Date getTargetDate()
    {
        return targetDate;
    }
    public void setCarNo(String carNo)
    {
        this.carNo = carNo;
    }

    public String getCarNo()
    {
        return carNo;
    }
    public void setDriverName(String driverName)
    {
        this.driverName = driverName;
    }

    public String getDriverName()
    {
        return driverName;
    }
    public void setDriverIdNo(String driverIdNo)
    {
        this.driverIdNo = driverIdNo;
    }

    public String getDriverIdNo()
    {
        return driverIdNo;
    }
    public void setDriverPhone(String driverPhone)
    {
        this.driverPhone = driverPhone;
    }

    public String getDriverPhone()
    {
        return driverPhone;
    }
    public void setSaleNo(String saleNo)
    {
        this.saleNo = saleNo;
    }

    public String getSaleNo()
    {
        return saleNo;
    }
    public void setSupplier(String supplier)
    {
        this.supplier = supplier;
    }

    public String getSupplier()
    {
        return supplier;
    }
    public void setPlanQuantity(String planQuantity)
    {
        this.planQuantity = planQuantity;
    }

    public String getPlanQuantity()
    {
        return planQuantity;
    }
    public void setMeteringMethod(String meteringMethod)
    {
        this.meteringMethod = meteringMethod;
    }

    public String getMeteringMethod()
    {
        return meteringMethod;
    }
    public void setPickupDate(Date pickupDate)
    {
        this.pickupDate = pickupDate;
    }

    public Date getPickupDate()
    {
        return pickupDate;
    }
    public void setTransCompany(String transCompany)
    {
        this.transCompany = transCompany;
    }

    public String getTransCompany()
    {
        return transCompany;
    }
    public void setTransCount(String transCount)
    {
        this.transCount = transCount;
    }

    public String getTransCount()
    {
        return transCount;
    }
    public void setSourceType(String sourceType)
    {
        this.sourceType = sourceType;
    }

    public String getSourceType()
    {
        return sourceType;
    }
    public void setFlowStatus(String flowStatus)
    {
        this.flowStatus = flowStatus;
    }

    public String getFlowStatus()
    {
        return flowStatus;
    }
    public void setSerialNo(String serialNo)
    {
        this.serialNo = serialNo;
    }

    public String getSerialNo()
    {
        return serialNo;
    }
    public void setEntryTime(Date entryTime)
    {
        this.entryTime = entryTime;
    }

    public Date getEntryTime()
    {
        return entryTime;
    }
    public void setExitTime(Date exitTime)
    {
        this.exitTime = exitTime;
    }

    public Date getExitTime()
    {
        return exitTime;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("mbSerialNo", getMbSerialNo())
            .append("erpBillNo", getErpBillNo())
            .append("erpBillType", getErpBillType())
            .append("businessType", getBusinessType())
            .append("businessName", getBusinessName())
            .append("targetDate", getTargetDate())
            .append("carNo", getCarNo())
            .append("driverName", getDriverName())
            .append("driverIdNo", getDriverIdNo())
            .append("driverPhone", getDriverPhone())
            .append("icCardNo", getIcCardNo())
            .append("saleNo", getSaleNo())
            .append("supplier", getSupplier())
            .append("planQuantity", getPlanQuantity())
            .append("meteringMethod", getMeteringMethod())
            .append("pickupDate", getPickupDate())
            .append("transCompany", getTransCompany())
            .append("transCount", getTransCount())
            .append("sourceType", getSourceType())
            .append("flowStatus", getFlowStatus())
            .append("serialNo", getSerialNo())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("entryTime", getEntryTime())
            .append("exitTime", getExitTime())
            .toString();
    }

    public String getIcCardNo() {
        return icCardNo;
    }

    public void setIcCardNo(String icCardNo) {
        this.icCardNo = icCardNo;
    }

    public String getOrgNo() {
        return orgNo;
    }

    public void setOrgNo(String orgNo) {
        this.orgNo = orgNo;
    }

    public String getDeptName() {
        return deptName;
    }

    public void setDeptName(String deptName) {
        this.deptName = deptName;
    }

    public String getQueueNo() {
        return queueNo;
    }

    public void setQueueNo(String queueNo) {
        this.queueNo = queueNo;
    }

    public String getWindowUuid() {
        return windowUuid;
    }

    public void setWindowUuid(String windowUuid) {
        this.windowUuid = windowUuid;
    }

    public String[] getBusinessTypes() {
        return businessTypes;
    }

    public void setBusinessTypes(String[] businessTypes) {
        this.businessTypes = businessTypes;
    }

    public String getTakenoTime() {
        return takenoTime;
    }

    public void setTakenoTime(String takenoTime) {
        this.takenoTime = takenoTime;
    }


    public String getBookingStartTime() {
        return bookingStartTime;
    }

    public void setBookingStartTime(String bookingStartTime) {
        this.bookingStartTime = bookingStartTime;
    }

    public String getBookingEndTime() {
        return bookingEndTime;
    }

    public void setBookingEndTime(String bookingEndTime) {
        this.bookingEndTime = bookingEndTime;
    }
}
